As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems generally include one or more buses, such as the Inter-Integrated Circuit (I2C) Bus, the System Management Bus (SMBus) pr an expansion bus, that allow devices and components within the information handling system to communicate with each other. Components such as processors, the BIOS, and firmware utilize the bus in order to access other devices connected to bus, such as sensor devices, in order to determine the status of the information handling system. For instance, the BIOS upon start-up of the information handling system determines if certain devices and components are connected and functioning properly. Also, firmware may request status checks during information handling system operation from devices coupled with the buses in order to determine if any errors have occurred or been detected and to retrieve sensor readings regarding operating temperatures or voltages.
Two important information handling system buses include the Inter-Integrated Circuit (I2C) bus providing a communication link between integrated circuits within the information handling system and the System Management Bus (SMBus) providing a control bus for system and power management related tasks. Both the I2C bus and the SMBus are seven bit addressable buses that utilize a multimaster protocol allowing for multiple devices to be connected to the bus where each one of the devices can act as master of the bus by initiating a data transfer. Because there is a limit to the number of devices that can be associated with a single bus segment, access to devices such as sensors and status registers is multiplexed so that access may be granted to all segments of the buses.
Generally in information handling systems, general purpose bus status information is desired by two different components at the same time. For instance, both the BIOS and firmware may desire the types of errors that have been detected by particular devices or sensors and therefore make simultaneous requests to the same device on the bus. Complicating such simultaneous requests is the multiplex and multimaster characteristics of the I2C bus and the SMBus. The multiplexed configuration is not compatible with the multimaster configuration when two devices request the same status information because each bus master, here the BIOS and the firmware, can switch in during the middle of a transaction resulting in bus hang conditions. For example, both the BIOS and the firmware request status information from the same sensor device. The BIOS contacts the sensor device via the bus and initiates a data transfer to the sensor device thereby becoming the master of the bus. While the BIOS is communicating with the sensor device, the firmware also initiates a data transfer to the same sensor device attempting to become the master of the bus while the BIOS is currently the master which interrupts the data transfer between the BIOS and the sensor device and creates bus hang conditions where neither the BIOS or the firmware can complete the data transfer and obtain the desired status information.